package com.GraduationDesign.backend.bl.codeReview;

import com.GraduationDesign.backend.po.DiffResponse;
import com.GraduationDesign.backend.po.ReviewInfo;
import com.GraduationDesign.backend.po.Reviewer;
import com.GraduationDesign.backend.vo.*;

import java.util.List;

/**
 * @author: wzx
 * @date: 2022/3/6
 */
public interface ReviewService {
    /**
     * 增加评审
     * @param reviewVO 评审
     * @return 响应
     */
    ResponseVO addReview(ReviewVO reviewVO);

    /**
     * 删除评审
     * @param reviewId 删除评审id
     * @return 响应
     */
    ResponseVO deleteReview(int reviewId);



    /**
     * @param userId 用户id
     * @return 评审列表
     */
    List<ReviewInfo> getReviews(Integer userId);

    /**
     * 获得评审人列表
     * @return 评审人列表
     */
    List<Reviewer> getReviewerList();

    /**
     * 获取最近添加的评审
     * @param userId 用户id
     * @return 获取最近添加的评审
     */
    List<Object> recentReviews(Integer userId);

    /**
     * 更新评审
     * @param reviewCommentVO 评审新增内容
     * @return 响应
     */
    ResponseVO addReviewContent(ReviewCommentVO reviewCommentVO);

    /**
     * 获取review列表
     * @param prgramid 项目id
     * @return review列表
     */
    List<ReviewInfo> getReviewListByProgramId(Integer prgramid);
    /**
     * 评审拆分
     * @param prInfo pr信息
     * @param reviewId 评审id
     * @return 修改信息
     */
    DiffResponse calculate(PRInfo prInfo, Integer reviewId);

    ResponseVO addCodeComment(CommentVO commentVO);
    /**
     * @param reviewId 评审id
     * @return 响应
     */
    ResponseVO confirmGroup(Integer reviewId);



}
